<?php

/**
 * ord_servicio actions.
 *
 * @package    SAC_CLonsa
 * @subpackage ord_servicio
 * @author     Your name here
 * @version    SVN: $Id: actions.class.php 23810 2009-11-12 11:07:44Z Kris.Wallsmith $
 */
class ord_servicio1Actions extends sfActions
{
 /**
  * Executes index action
  *
  * @param sfRequest $request A request object
  */
  public function executeIndex(sfWebRequest $request)
  {
    //$this->forward('ord_servicio', 'crear');
    $this->nombre = $this->getUser()->getGuardUser()->getUsername();
      if($request->isMethod("post")){
          $this->valor = $request->getParameter("single");
          $this->test = "de prueba";
    }
  }

  public function executeCrear($peticion)
  {
    //Se crea un nuevo registro de manera objetual, al crar un nuevo objeto Os
    $os_solicitante = new OsSolicitante();
    $os_solicitante->setFecha(time());
    $os_solicitante->setsfGuardUser( $this->getUser()->getGuardUser() );
    //Se ingresa la clave foránea (int) del estado 1, que siempre debe ser el estado de solución pendiente en esta etapa
    $os_solicitante->setEstadoOsId(1);

    $this->os_solicitante = $os_solicitante;
    $this->tipos_unidad = UnidadItemOsPeer::getTodos();
    $this->tipos_solicitudes_os =  TipoSolicitudPeer::getTodos();
    $this->proveedores = ProveedorPeer::getTodos();

    if ($this->getRequest()->isMethod('post'))
    {
      $os_solicitante->setObservaciones($peticion->getParameter("obs_os") );
      $os_solicitante->save();

      $cont = 0;
      $n_item = $peticion->getParameter("num_item_tabla_os");

      while ( $cont < $n_item )
      {
        $cont++;
        $item = new ItemOs();
        $item->setDescripcion($peticion->getParameter("desc".$cont));
        $item->setCantidad($peticion->getParameter("cant".$cont));
        $item->setOsSolicitante($os_solicitante);
        $item->setCostoRef($peticion->getParameter("cost_sug".$cont));

        /*para guardar la fecha en formato YYYY-mm-dd*/
        list($dia,$mes,$anio) = explode('/', $peticion->getParameter("f_sol".$cont));
        $item->setFechaCierre($anio."-".$mes."-".$dia);
        $item->setObsAprobacion($peticion->getParameter("obs".$cont));
        $item->setTipoSolicitudId( TipoSolicitudPeer::getIdporTipo( $peticion->getParameter("sel_tipo_os".$cont) ) );


        /*ingreso proveedor*/
        if( ProveedorPeer::existeProveedorNombre( $peticion->getParameter("prov_sug".$cont) ))
        {
            $item->setProveedorId( ProveedorPeer::getIdporNombre( $peticion->getParameter("prov_sug".$cont) ) );
        }
        elseif( $peticion->getParameter("prov_sug".$cont) != '' )
        {
            $prov = new Proveedor();
            $prov->setNombre($peticion->getParameter("prov_sug".$cont));
            $prov->setSugerido(1);
            $prov->save();
            $item->setProveedorId( ProveedorPeer::getIdporNombre( $peticion->getParameter("prov_sug".$cont) ) );
        }
        /*fin ingreso proveedor*/

        $item->setEstadoSolicitudId(1);
        $item->setUnidadItemOsId( UnidadItemOsPeer::getIdporTipoUnidad( $peticion->getParameter("sel_tipos_unidad".$cont)) );
        $item->setCentroCostos( $peticion->getParameter("c_costos") );
        $item->save();

      }

      $this->redirect('ord_servicio/crear');
    }
  }
}